/**
 Copyright will be fixed soon.
 Author: Hiroshi Ota.
 $Date: $
 $Revision: $
*/

#ifndef _BF_I_BEHAVIOR_CONTROL_H_
#define _BF_I_BEHAVIOR_CONTROL_H_

#include "BFState.h"
#include "IBFStateApp.h"
#include "BFRunningStateApp.h"
#include "BFArgorithmContainer.h"

#include "PWPathFinderRobot.h"

// Variation
// #define _NO_USE_BF_TOUCH_SENSOR

class IBFBehaviorControl
{
public:
	IBFBehaviorControl(void);
	virtual ~IBFBehaviorControl(void);

	virtual void registInitApp(IBFStateApp* app) {}
	virtual void registRunningApp(BFRunningStateApp* app) {}
	virtual void registTermApp(IBFStateApp* app) {}

	virtual void registState(BFState* state) {}
	virtual void updateState(BFState::SystemState newState){}
	virtual BFState* getState() { return 0; }
	virtual BFArgorithmContainer* getArgorithmContainer() { return 0; }

	virtual PWPathFinderRobot* getPathFinderRobot() { return 0; }

};

#endif // _BF_I_BEHAVIOR_CONTROL_H_
